package in.view.delegate;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import in.controller.adapter.ThreadAdapter;
import in.controller.adapter.ThreadAdapter.Mode;
import in.controller.adapter.base.RobinAdapter;
import in.model.Post;
import in.rob.client.R;
import in.view.holder.ThreadPostCollapsedHolder;
public class ThreadPostCollapsedDelegate extends ThreadPostDelegate
{
public ThreadPostCollapsedDelegate(RobinAdapter<Post> adapter)
{
super(adapter);
}
public int getLayout()
{
return R.layout.thread_post_collapsed_view;
}
@Override public View getView(Post item, int position, View convertView, ViewGroup parent, LayoutInflater inflater)
{
ThreadPostCollapsedHolder holder;
if (convertView == null)
{
convertView = inflater.inflate(getLayout(), parent, false);
holder = new ThreadPostCollapsedHolder(convertView);
convertView.setTag(holder);
}
else
{
holder = (ThreadPostCollapsedHolder)convertView.getTag();
}
convertView.setTag(R.id.TAG_POSITION, position);
holder.populate(item);
if (((ThreadAdapter)getAdapter()).getMode() == Mode.NESTED)
{
setIndentation(convertView, item);
}
else
{
((ViewGroup)convertView).getChildAt(0).setVisibility(View.GONE);
}
return convertView;
}
@Override public boolean onItemLongClick(int position, View view)
{
String id = getAdapter().getItem(position).getOriginalId();
int indent = ((ThreadAdapter)getAdapter()).getIndentSpec().get(id);
for (int index = position, count = getAdapter().getCount(); index < count; index++)
{
int childIndent = ((ThreadAdapter)getAdapter()).getIndentSpec().get(getAdapter().getItem(index).getOriginalId());
if (childIndent <= indent && index != position)
{
break;
}
if (index == position)
{
((ThreadAdapter)getAdapter()).getCollapsedReference().remove(id);
}
}
getAdapter().notifyDataSetChanged();
return true;
}
}